home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
hity wydania
/
trueSpace 7.6
/
tS761B8Std.exe
/
{app}
/
Scripts
/
MaterialEditor
/
Bricks
/
Compound
/
Phong.Brick.xml
< prev
next >
Wrap
Extensible Markup Language
|
2008-06-10
|
2KB
|
33 lines
<?xml version="1.0" encoding="utf-8" ?>
<ME_BRICK GUID="{8518587C-3FC0-4B64-8A1C-91A63B2CAABE}" Name="RtUPhong" GUIName="Phong Lighting" Description="The phong lighting model">
<ME_BRICK_INPUTPARAM GUID="{8F36D03A-7EE2-4BEE-8A11-41BD864DA005}" Name="DiffuseColor" Type="RtFloat4"/>
<ME_BRICK_INPUTPARAM GUID="{A31ADA52-5DC6-4AF0-910E-D3C48037A2E5}" Name="SpecularColor" Type="RtFloat4"/>
<ME_BRICK_INPUTPARAM GUID="{A3151AEA-B476-4A88-B79E-0AC3F07E7E9E}" Name="Shininess" Type="RtFloat"/>
<ME_BRICK_INPUTPARAM GUID="{FD26248C-C42A-4832-920E-D381CB64C584}" Name="NormalVector" Type="RtFloat3"/>
<ME_BRICK_INPUTPARAM GUID="{C15A8901-D85B-477F-B0A2-CE0B7B2F2C99}" Name="EyeDirection" Type="RtFloat3"/>
<ME_BRICK_INPUTPARAM GUID="{20899F93-8D7A-45CE-8525-FF538C66A287}" Name="LightDirection" Type="RtFloat3"/>
<ME_BRICK_INPUTPARAM GUID="{BDE177A0-2114-4358-8BAC-C202CF4C02B1}" Name="LightColor" Type="RtFloat4"/>
<ME_BRICK_OUTPUTPARAM GUID="{23D9420B-DC88-41F3-8629-E505B25B2864}" Name="ResultColor" Type="RtFloat4"/>
<ME_BRICK_CODE><![CDATA[
//The phong lighting function
void RtUPhong(in RtFloat4 DiffuseColor, in RtFloat4 SpecularColor, in RtFloat Shininess,
in RtFloat3 NormalVector, in RtFloat3 EyeDirection, in RtFloat3 LightDirection,
in RtFloat4 LightColor, out RtFloat4 ResultColor)
{
ResultColor = RtFloat4(0.0f, 0.0f, 0.0f, 0.0f);
RtFloat3 vNormal = NormalVector;
RtFloat3 vLightDir = LightDirection;
RtFloat3 vEye = EyeDirection;
RtFloat DiffuseCoef = rtx_Dot(vNormal, vLightDir);
if (DiffuseCoef>0)
{
RtFloat3 vLightReflect = rtx_Reflect(rtx_Negate(vLightDir), vNormal);
RtFloat EyeDotReflect = rtx_Saturate(rtx_Dot(vEye, vLightReflect));
RtFloat SpecularCoef = rtx_Pow(EyeDotReflect, Shininess);
ResultColor = (DiffuseColor * DiffuseCoef + SpecularColor * SpecularCoef) * LightColor;
}
ResultColor.a = DiffuseColor.a;
}
]]></ME_BRICK_CODE>
</ME_BRICK>